/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fiad.model.person;

import fiad.model.Ausbildungsbetrieb;
import fiad.model.Klasse;
import fiad.model.zeugnis.Zeugnis;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;

/**
 *
 * 
 */
@Entity
@Table(name = "schueler")
@NamedQueries({
		@javax.persistence.NamedQuery(name = "lesenSchueler", query = "Select schueler FROM Schueler schueler WHERE schueler.id = :schueler ORDER BY schueler.nachname ASC"),
                @javax.persistence.NamedQuery(name = "lesenALLESchueler", query = "Select schueler FROM Schueler schueler")})


public class Schueler extends Person implements Serializable {

    @ManyToOne(cascade=CascadeType.ALL)
    private Klasse klasse;

    private String religion;
    private String staatsangehoerigkeit;

    @Temporal(javax.persistence.TemporalType.DATE)
    private Date einschulungInGrundSchule;
    
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date einschulungsjahrAufHHBK;
    
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date geburtsdatum;

    private String bisherErreichterSchulabschluss;

    @Temporal(javax.persistence.TemporalType.DATE)
    private Date entlassungsDatumVonLetzterSchule;
    private String geburtsort;
    private String geburtsland;

   

   private int fehltage_insgesamt;


   private int fehltage_unentschuldigt;

    
    private boolean verkuerzer;
    
    private boolean aktiverSchueler;
    private boolean jeEinZeugnisBekommen = false;


    
    @ManyToOne(cascade=CascadeType.ALL)
    private Ausbildungsbetrieb betrieb;

    @OneToMany(cascade=CascadeType.ALL)
    private List<Ausbilder> zugeordneteAusbilder = new ArrayList<Ausbilder>();

    @OneToMany(cascade=CascadeType.ALL)
    private List<Zeugnis> zeugnisse = new ArrayList<Zeugnis>();

    
    
    
    public boolean isAktiverSchueler() {
        return aktiverSchueler;
    }

    public void setAktiverSchueler(boolean aktiverSchueler) {
        this.aktiverSchueler = aktiverSchueler;
    }

    public Ausbildungsbetrieb getBetrieb() {
        return betrieb;
    }

    public void setBetrieb(Ausbildungsbetrieb betrieb) {
        this.betrieb = betrieb;
    }

    public String getBisherErreichterSchulabschluss() {
        return bisherErreichterSchulabschluss;
    }

    public void setBisherErreichterSchulabschluss(String bisherErreichterSchulabschluss) {
        this.bisherErreichterSchulabschluss = bisherErreichterSchulabschluss;
    }

    public Date getEinschulungInGrundSchule() {
        return einschulungInGrundSchule;
    }

    public void setEinschulungInGrundSchule(Date einschulungInGrundSchule) {
        this.einschulungInGrundSchule = einschulungInGrundSchule;
    }

    public Date getEntlassungsDatumVonLetzterSchule() {
        return entlassungsDatumVonLetzterSchule;
    }

    public void setEntlassungsDatumVonLetzterSchule(Date entlassungsDatumVonLetzterSchule) {
        this.entlassungsDatumVonLetzterSchule = entlassungsDatumVonLetzterSchule;
    }


    public Date getEinschulungsjahrAufHHBK() {
        return einschulungsjahrAufHHBK;
    }

    public void setEinschulungsjahrAufHHBK(Date einschulungsjahrAufHHBK) {
        this.einschulungsjahrAufHHBK = einschulungsjahrAufHHBK;
    }

    public Date getGeburtsdatum() {
        return geburtsdatum;
    }

    public void setGeburtsdatum(Date geburtsdatum) {
        this.geburtsdatum = geburtsdatum;
    }

    public String getGeburtsort() {
        return geburtsort;
    }

    public void setGeburtsort(String geburtsort) {
        this.geburtsort = geburtsort;
    }

    public boolean isJeEinZeugnisBekommen() {
        return jeEinZeugnisBekommen;
    }

    public void setJeEinZeugnisBekommen(boolean jeEinZeugnisBekommen) {
        this.jeEinZeugnisBekommen = jeEinZeugnisBekommen;
    }

    public String getReligion() {
        return religion;
    }

    public void setReligion(String religion) {
        this.religion = religion;
    }

    public String getStaatsangehoerigkeit() {
        return staatsangehoerigkeit;
    }

    public void setStaatsangehoerigkeit(String staatsangehoerigkeit) {
        this.staatsangehoerigkeit = staatsangehoerigkeit;
    }

    public boolean isVerkuerzer() {
        return verkuerzer;
    }

    public void setVerkuerzer(boolean verkuerzer) {
        this.verkuerzer = verkuerzer;
    }

    public List<Zeugnis> getZeugnisse() {
        return zeugnisse;
    }

    public void setZeugnisse(List<Zeugnis> zeugnisse) {
        this.zeugnisse = zeugnisse;
    }

    public List<Ausbilder> getZugeordneteAusbilder() {
        return zugeordneteAusbilder;
    }

    public void setZugeordneteAusbilder(List<Ausbilder> zugeordneteAusbilder) {
        this.zugeordneteAusbilder = zugeordneteAusbilder;
    }

    
    public Klasse getKlasse() {
        return klasse;
    }

    public void setKlasse(Klasse klasse) {
        this.klasse = klasse;
    }    
    
    @Override
    public String toString(){
        return getNachnameVorname();
    }

    public String getNachnameVorname(){
        return nachname + ", " + vorname;
    }

    public int getFehltage_insgesamt() {
        return fehltage_insgesamt;
    }

    public void setFehltage_insgesamt(int fehltage_insgesamt) {
        this.fehltage_insgesamt = fehltage_insgesamt;
    }

    public int getFehltage_unentschuldigt() {
        return fehltage_unentschuldigt;
    }

    public void setFehltage_unentschuldigt(int fehltage_unentschuldigt) {
        this.fehltage_unentschuldigt = fehltage_unentschuldigt;
    }

    public String getGeburtsland() {
        return geburtsland;
    }

    public void setGeburtsland(String geburtsland) {
        this.geburtsland = geburtsland;
    }


  


}
